/*
* Copyright© 2018 Shanxi Lu'an Taihang Laihui Net Tech co.,LTD.
*/
package com.laihuichuxing.netty.server.server.module.lbs.driver;

import com.laihuichuxing.netty.common.core.annotion.SocketCommand;
import com.laihuichuxing.netty.common.core.annotion.SocketModule;
import com.laihuichuxing.netty.common.core.session.Session;
import com.laihuichuxing.socket.LbsCmd;
import com.laihuichuxing.socket.ModuleId;

/**
 * Description: 司机定位
 *
 * @author YangGuang
 * @since: 1.0
 * Create Date Time: 2018/10/9 9:17
 * Update Date Time:
 */
@SocketModule(module = ModuleId.LBS)
public interface DriverPositionHandler {

    /**
     * Description: 司机听单实时回传位置
     * @param session 当前会话
     * @param data 数据
     * @author YangGuang
     * Create Date Time: 2018/10/9 9:23
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.LISTEN_POSITION)
    void listenPosition(Session session, byte[] data);

    /**
     * Description: 司机确认到达
     * @param session 当前会话
     * @param data 数据
     * @author YangGuang
     * Create Date Time: 2018/10/11 16:00
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.DRIVER_ARRIVAL)
    void driverArrival(Session session,byte[] data);

    /**
     * Description: 派单成功通知司机和乘客
     * @param session 当前会话
     * @param data 数据
     * @author YangGuang
     * Create Date Time: 2018/10/12 14:32
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.DRIVER_ORDER)
    void driverOrder(Session session,byte[] data);

    /**
     * Description: 司机开启听单
     * @param session 当前会话
     * @param data 数据
     * @author YangGuang
     * Create Date Time: 2018/10/12 15:34
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.DRIVER_LISTEN)
    void driverListen(Session session,byte[] data);

    /**
     * Description: 司机发车
     * @param session 当前会话
     * @param data 数据
     * @author YangGuang
     * Create Date Time: 2018/10/17 17:52
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.DRIVER_DEPARTURE)
    void driverDeparture(Session session,byte[] data);

    /**
     * Description: 接到乘客
     * @param session 当前会话
     * @param data 数据
     * @author YangGuang
     * Create Date Time: 2018/10/18 14:09
     * Update Date Time:
     */
    @SocketCommand(cmd = LbsCmd.DRIVER_TAKE)
    void driverTake(Session session,byte[] data);
    /** 
     * Description: 接驾中乘客获取司机位置
     * @param session 当前会话
     * @param data 数据
     * @author QinXueFeng
     * Create Date Time: 2018/12/5 15:43
     * Update Date Time:
     */ 
    @SocketCommand(cmd = LbsCmd.DRIVER_NOTIFY_PASSENGER)
    void driverNotifyPassenger(Session session, byte[] data);
}
